Velocity control of a numerical control system

ABSTRACT

Apparatus is disclosed for approximating the tool departure (the vector sum) D from commanded axis departures X, Y and Z in a numerical control system, and for obtaining a clock pulse train at a frequency fo as a function of D. The velocity V can be specified as part of the stored command information. The approximated departure D and velocity V are then employed to determine a feedrate number (FRN) from the relationship V FRN .D using a clock pulse train of frequency F in accordance with the equation F.V F.Q.D, where Q is a variable increased from zero until the equality of the equation is reached. Q is then the desired FRN which is entered into a conventional interpolator.

United States Patent 3,286,085 1 1/1966 Rado Lukens Inventor Ernst H.Dumruermuth 3,344,260 9/1967 235/ l 5 l .l 1

East Cleveland, Ohio 3,349,229 10/ 1967 Evans 295/15 1.] 1 Appl. No.810,630 3,443,178 5/1969 Reuteler 235/151.11 X Filed Mar. 26, 19693,479,574 11/1969 1(0sem....... 235/151.l1 X Patented Jan. 4, 19723,308,279 3/ 1967 Kelling 318/571 X Asslgnee %g? Primary Examiner-JosephF. Ruggiero AtrorneysAmold T. Ericsen and Richard C. Steinmetz, Jr.

VELOCITY CONTROL OFANUMERICAL ABSTRACT: Apparatus is disclosed forapproximating the ggggr g k Figs. tool departure (the vector sum) D fromcommanded axis departures X, Y and Z in a numerical control system, andfor ob- US. Cl ..235/l51.ll, mining a clock pulse train at a frequencyf, as a function of D.

318/571, 318/573 The velocity V can be specified as part of the storedcommand Int. Cl .....,G05b 17/18, information. The approximateddeparture D and velocity V G06f 15/46 are then employed to determine afecdrate number (F RN) Field of Search ..235/ 151.1 1, from therelationship V=FRN=D using a clock pulse train of References CitedUNITED STATES PATENTS frequency F in accordance with the equationF-V=FQ-D, where Q is a variable increased from zero until the equalityof the equation is reached. Q is then the desired FRN which is enteredinto a conventional interpolator.

TAPE DATA DISTRIBUTION X SIGN T0 SERVO READER 1 UNIT Y SIGN SYSTEMS 1113 COMMON 14 "oNTRoL X Y uNIT I2 16 f l -X VOLTAGE IO AXES CONTOUR T ToSERVO CONTROLLED GENERATOR EM (RATE MULTIPLIERS) SYST 5 "T9 5o" I r l IF I I XSY DIFF. 21 I I :I2 AMP, I I DRX I I 44 l l I l I I l I l l lFEEDRATE l I coNTRoL I I WW I I I L PAIENIEUJAII 4am V 7 333331013 SHEET2 OF 4 I I I I I l I I I B FF1 FF3 DR R I DRX I T 37 I I 40 0 I I MV I II I I I l o I 50 3 5 I I B FF2 FF4 I DR DR R 5 j 22 I D-COMPUTER L JINVENTOR. ERNST DUMMERMUTH FIG. 3 vW ATTORNEYS mcmmmm: I j 31633013SHEET 3 0F 4 TAPE READER DATA DISTRIBUTION UNIT 52 COMMON FIG; 4 CONTROL56 D-COMP UNIT 57 54 +V 1X 1D IY FEEDRATE GEN. F2' Zfihlii F2 To SERVOoSc. SYSTEMS 59 LINEAR INTERPOLATOR V-REGISTER VELOCITY DRM D-REGISTERDECIMAL COUNTE FRN DRM INVENTOR. ERNST DUMMERMUTH BY "W ATTORNEYS FIG. 5

VELOCITY CONTROL OF A NUMERICAL CONTROL SYSTEM BACKGROUND OF THEINVENTION This invention relates to vectorial velocity control of anumerically controlled machine tool, or similar device, in response toprestored instructions.

In a numerically controlled machine tool, the cutting tool is directedthrough the workpiece by specifying the desired departure of the toolfrom its present position with reference to three mutually orthogonalax'es, X, Y, and Z. For optimum use of the machine, the departure Dshould be traversed at a maximum velocity, where D is the square root ofthe sum of the squares of the programmed distances X, Y and Z. Thatmaximum velocity is dependent primarily upon the nature of the cuttingtool and the composition of the material, and therefore remainsconstant.

The programmed distances X, Y and Z are stored on a punched tape, or thelike, and read in blocks together with associated words, each wordrepresenting a control function. A linear interpolator counts out adiscrete number of clock pulses to a servo system which converts theminto a proportional (analog) signal to operate prime movers of themachine tool. A feedrate generator controls the frequency of the clockpulses to the linear interpolator, and the interpolator establishes thecycle time for each instruction, thereby controlling the velocity of themachine tool.

It is standard practice to control the feedrate generator with a storedfeed command (feedrate number) given by a standard formula adapted forthe relationship of the feedrate number (FRN), programmed departure (D),and desired velocity (V), as follows:

FRN=VID The velocity V is given by a table for all cutting tools andmaterials, and the departure D is calculated from the programmeddistances X, Y and Z.

In the past, the feedrate number has been computed in advance for eachdeparture programmed, and stored on the tape along with the values of X,Y and Z. The value of the departure D is normally not stored; however,for a constant velocity, the feedrate number reflects that value. Thedifficulty has been that although not stored, it has been necessary tocompute it for each tool departure programmed in order to be able tostore the feedrate number with the programmed values of X, Y and Z. Itwould be more convenient to program only the values of X, Y and Z, andstore or enter into the control apparatus the desired velocity (such as100 inches per minute) not related to any departure (vector sum of X, Yand Z) information. For a different combination of cutting tool andmaterial, the same program can then be used by simply programming adifferent velocity. However, the control apparatus would then have to beadapted to effectively compute the feedrate number from the velocity anddeparture information.

The departure information is stored only in terms of motions along themachine control axes X, Y and Z. Accordingly, before the feedrate numbercan be computed, it is necessary to compute the departure D. It would bepossible to provide apparatus to find the departure D as a scalarquantity from the values X, Y and Z read from the tape by squaring eachvalue, adding the squares, and calculating the square root of that sum.However, the algorithm for that in a digital computing system is quiteinvolved, particularly in the final step of cornputing the square root.Accordingly, if the feedrate number is not to be computed in advance andstored as part of the program, it would be desirable to have some simpleway of computing the departure D.

The velocity is customarily stored in a format which conforms withElectronics lndustry Association (EIA) standards, which is a three digitcode f(abc), commonly referred to as the magic three." The first digita" specifies an exponent for powers of ten for a multiplier 10" whilethe remaining two digits (b) specify the velocity in inches per minuteas a decimal fraction. For example, the magic three" code f(620) isinterpreted as l (0.20) [PM which is equal to 200 inches per SUMMARY OFTHE INVENTION According to the present invention, the departure D isapproximated in a two-axes system in accordance with the equa- IIOIISZYI Y The value of D thus approximated is then employed to obtain anoutput pulse train at a frequency f to be applied to a linearinterpolator comprising rate multipliers for the command axes. For aneven closer approximation, the departure D may be approximated inaccordance with the equations:

If I Xl l Y I, the values of T For three dimensional control theapproximation for D is as follows:

For this approximation it is necessary that IX| |Y| 2|. The denominationof the axes commands as X, Y and Z are interchanged to achieve thissorting by magnitude such that the largest denominated X and thesmallest is denominated 2, but only for the purpose of computing D. Asjust noted, the approximation is employed according to one feature ofthe invention, to control a pulse train source thereby producing anoutput pulse train f, inversely proportional to the approximateddeparture D. A linear interpolator is then employed to multiply thepulse train 1}, by the axes commands, such as X and Y for a two-axessystem, to provide f,,'X and 11;) pulses to X and Y servos. In thatmanner, the tool velocity is maintained approximately constant for all Xand Y commands. For a different velocity, the pulse train source ismodified to change the frequency f}, thereof proportionately. In thepast, when a feedrate number was not provided, the practice had been touse the axis having the largest magnitude, and therefore the fastestspeed, to control the frequency f,,. That was done by simply convertingthe pulse train from the rate multiplier of each axis to a proportionalDC voltage, and applying each to a voltage controlled oscillator(through a bufier, the output of which would always be equal to thehighest input voltage) to vary j", accordingly.

In more sophisticated systems it has become standard practice to store afeedrate number with the axis commands on the program tape where thenumber (FRN) is set equal to the ratio of the desired velocity V to theprogrammed departure D in order to obtain a pulse train at a frequencyf, equal to F 'FRN, where F is the constant frequency of a train ofclock pulses.

In accordance with a significant feature of the present invention, thedesired velocity V is stored, instead of the feedrate number, togetherwith the axis commands. The corresponding feedrate number is thencalculated from the equation V=FRN-D by multiplying a clock frequency Fby V to obtain a reference frequency f,,, multiplying the clockfrequency F by a variable Q, and multiplying the product Q-F by thedeparture D. The product Q-F'D is then compared with the referencefrequency f (which equals VP) and the variable Q is increased untilQ-F-D is equal to VP, at which time the variable Q is the desired FRNwhich may be applied directly to a feedrate generator comprising a ratemultiplier to obtain a pulse train at a frequency proportional thereto.That pulse train is then applied to a conventional interpolator (axiscommand rate multipliers).

In accordance with a further feature of the invention, the velocitydesired is specified in the EIA magic three code f(abc) where the lasttwo digits (be) are representative of a decimal fraction and the firstdigit is a positive integer to be added to the exponent of a multiplier10' by which the fraction is to be multiplied to re present the desiredvelocity in inches per minute. In calculating the feedrate number bysetting F-V=Q-F-D, where Q is the desired FRN as just noted, only thefraction (.bc) is employed to multiply F for the lefthand side of theequation. The multiplier is then introduced by effectively shifting theproduct F -Q or F (.bc) the requisite number of decimal places, i.e. byshifting the clock frequency F input and the associated multiplier Q or(.bc) a number of decades in a rate multiplier. In a preferredembodiment, the multiplier 10" is introduced in the right-hand side ofthe equation as 10 by shifting orders of decades in the rate multiplierfor the product Q-F. The Q is then the required FRN (when F-V=Q-F-D)that is applied as an input to a conventional linear interpolator tosimultaneously meter pulses to all servosystems for the X, Y and Z axes.In that manner, the multiplier 10 appears in the pulse trainrepresenting the product QF and in the feedrate number FRN when Q.F-D isequal to F (.bc). Although a decimal system is disclosed, it should beappreciated that any radix may be selected for the system such as binaryor octal.

The novel features that are considered characteristic of this inventionare set forth with particularity in the appended claims. The inventionwill best be understood from the following description when read inconnection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. I is a block diagram of oneembodiment of the present invention where machine tool velocity is beingmaintained constant for all programmed motions;

FIG. 2 is a circuit diagram of a differential amplifier employed in theembodiment of FIG. 1;

FIG. 3 is a logic diagram of apparatus used in the system of FIG. 1 forapproximating the departure (scalar quantity of the vector sum) D ofaxis commands X, Y and Z, and for producing a voltage signalproportional to D;

FIG. 4 is a block diagram of another embodiment of the present inventionwherein velocity is specified as part of the axis command data read froma tape;

FIG. 5 isa more detailed block diagram of apparatus used in the systemof FIG. 4 for computing a feedrate number (FRN) from an approximateddeparture D and velocity V according to the equation F'V=F-Q-D where Qis a variable increased from zero until the equation is satisfied atwhich time Q is the desired F RN; and

FIG. 6 is a variant of the apparatus shown in FIG. 5 to allow thevelocity V to be specified by the EIA magic three code.

DESCRIPTION OF THE PREFERRED EMBODIMENTS In a preferred embodiment ofthe invention as shown in FIG. 1, axis command data is stored in, forexample, punched paper tape as departure distances along control axes X,Y and Z. Other control data may be also stored and read with thedeparture data by a tape reader 10.

A data distribution unit 11 converts the output signals from the tapereader 10 into data compatible with the system. After various checks areperformed on the data to insure reliability, the data is distributed toan axis contour generator 12 and a common control unit 13 where thedistributed data is temporarily stored in buffer registers. In thatmanner, while the command data for a given departure D of a machine toolis being processed by the axis contour generator 12 under control of theunit 13, the tape reader 10 and data distribution unit 11 may beprepared for reading out and distributing the next command data.

The common control unit 13 directs the processing of all commands andcauses the system to respond accordingly, all in accordance withpractices which have become standard in numerical control systems. Theaxis contour generator 12 receives a signal from the unit 13 over a line14 to initiate a command cycle. After the contour generator 12 hascompleted the command cycle, an end carry" signal is transmitted over aline 15 to indicate to the common control unit 13 that the cycle hasbeen completed, again all in accordance with practices which have becomestandard for numerical control systems.

A feedrate control unit 17 controls the frequency of the oscillator 16to maintain the velocity of the machine tool at a constant value. Thatvalue may be varied within limits by a potentiometer 18. Forconvenience, a two-axes control system is illustrated. Accordingly, onlypulse trains f,,-X and f 'Y are indicated as outputs from the contourgenerator 12 to X and Y servo systems for control of the machine tool(not shown). In that manner, the axis contour generator 12 functions asa conventional linear interpolator to meter pulses to all axessimultaneously in accordance with the departure D dimensions (X and Yvalues) programmed.

The X and Y pulses are metered to the servo systems at a rate to assurecompletion of the programmed move during a command cycle, using thepulse train from the voltage controlled oscillator 16 to determine thetime base. That is accomplished by using the rate multipliers of theaxis contour generator 12 to also count out a predetermined number ofpulses to the cycle so that the cycle time is inversely proportional tothe frequency f2, of the input pulse train thereto. This assures theproper cycle time and a synchronized motion of all axis servo systems toproduce motion of the controlled tool at a constant velocity.

The servo systems convert the metered pulses into a proportional voltageor current to operate prime movers of the machine tool in response tothe difference between a machine tool position feedback signal and thevoltage or current signal derived from the metered pulses. The motion ofthe prime movers will then be in a direction to reduce the difference,as is the standard practice in servo systems. The direction of themotion produced in a given axis is determined by the sign of the axiscommand. That is represented in FIG. 1 by X and Y sign signalstransmitted by the data distribution unit 11 to the respectiveservosystems.

The metered pulses from the axis contour generator 12 are alsotransmitted to the feedrate control unit 17 in order that the voltagecontrolled oscillator 16 may be varied to produce an output pulse trainat a frequency f, which will result in the desired machine tool velocityregardless of the departure programmed. For example, if the command datacalls for a departure D along only the X axis, the Y-command is equal tozero and the frequency f, from the voltage controlled oscillator set bythe potentiometer 18 will be multiplied by X to produce the meteredpulses f 'X which will result in the machine tool being moved along theX axis the specified departure D at the desired velocity.

In summary, the numerical control system is based upon pulses such thateach pulse will produce a predetermined departure along a given axis(for example 0.000l inch). The axis contour generator 12 meters asufficient number of pulses to produce the programmed departure of themachine tool in such a manner as to satisfy the equation:

V-T=D where T is the cycle time for departure D at the desired velocityV. The task then of the feedrate control unit 17 is to keep thedeparture velocity of the two-axes contouring system constant within acertain range independent of the magnitude of the X and Y departurecommands. In the past it has been the practice to maintain the departurevelocity constant only along a single axis, that axis being selected forthe largest axis command as noted hereinbefore. For example, if thecommand data calls for a departure of 5 inches along the X axis andinches along the Y axis, the velocity of the machine tool along the Yaxis is maintained constant. However, the vector sum of the X and Yvelocities of the machine tool is then in error by 12 percent. Thaterror increases as the difference between the X and Y commands decreasesto a maximum of 41.4 percent error when the X and Y axis commands areequal. This error is substantially reduced in accordance with thepresent invention by controlling the oscillator 16 by taking both axiscommands into account in approximating the departure D to be produced bythe X and Y commands such that the equation V-T=D is more nearlyapproximated.

in taking both axes into account, the error could be reduced to zero bysetting D, the control on the oscillator 16, equal to the square root ofthe sum of the separate axis commands squared. However, as notedhereinbefore, the algorithms for squaring the axis commands obtainingthe sum of the squares, and then solving for the square root of the sumis involved and would require a substantial amount of hardware and time.Accordingly, in accordance with the present invention, the departure Dis approximated by an algorithm in accordance with equation (2).

The following table compares the resultant error of the prior art methodof controlling velocity with the present invention. In the first twocolumns the X and Y commands are given for eleven ratios from 1:0 to1:1. The third column gives the true vector-sum departure D of themachine tool produced by the axis commands. The fourth column gives theapproximated departure D of the machine tool by the technique of thepresent invention. The fifth column shows the percent error of theapproximated departure D from the true departure given in the thirdcolumn. Since the prior art method would assume for all cases that thedeparture D of the machine tool is equal to unity for the ratios givenin the table, the percent error of the prior art technique is as shownin the last column of the table.

A similar table may be set forth for corresponding ratios when Y isgreater than X by simply interchanging X and Y in the first two columns.

In carrying out this technique for approximating the departure D as afunction of the axis commands X and Y, it is first necessary todetermine whether X is equal to or greater than Y. That is accomplishedby a differential amplifier 19 in the feedrate control unit 17 whichreceives voltage signals proportional to the pulse trains f,,-X andfl,-Y via respective frequency-to-voltage converters 20 and 21. If X isgreater than Y, the pulse train fl'X will have a frequency greater thanthe pulse train f,,-Y. Accordingly, the voltage output of the converter20 will be greater than the voltage output of the converter 21. Thedifferential amplifier then transmits a control signal DRx for controlof a D-computer 22 which produces a train of pulses of a frequency equalto f X+0.5Y). If Y is greater than X, the output of the differentialamplifier will be substantially zero volts, thereby inhibiting thetransmission of a DRx control signal to the D-computer 22. Instead, thedifferential amplifier 19 transmits to the computer 22 a DRy controlsignal via an inverter 23.

A circuit diagram for the differential amplifier 19 is shown in FIG. 2as comprising a pair of NPN-transistors T, and T having a common emitterresistor 25. The base electrodes of the respective transistors T. and T,are connected to the frequency-to-voltage converters 20 and 21 byresistors 26 and 27. The collector of the transistor T is connecteddirectly to the power supply while the collector of the transistor T isconnected to the power supply by voltage dividing resistors 28 and 29. APNP-transistor T is connected with its base-emitter junction across theresistor 29 to provide a single-ended output from the differentialamplifier. if X is equal to or greater than Y, the output voltage fromthe frequency-to-voltage converter 20 is equal to or greater than thevoltage from the converter 21 so that only the transistor T, willconduct thereby turning the transistor T;, on. The control signal DRx isthen derived across a load resistor 30. If Y is greater than X, thetransistor T conducts, thereby turning off the transistor T, and thetransistor T so that the DRx control signal goes to zero volts. Theinverter 23, which may comprise another transistor, then provides apositive voltage for the control signal DRy. A feedback resistor 31connected from the collector of the transistor T to the base oftransistor T provides a hysteresis which will assure that thedifferential amplifier latches in one state whenever X is equal to Y;which state is of no importance since thereby preventing an undefinedcondition when X is equal to Y.

The D-computer 22 will now be described with reference to the logicdiagram of H6. 3. It comprises a pair of control flipflops FF and FFwhich have their respective direct reset terminals (DR) connected toreceive the control signals DRx and DRy. If X is equal to or greaterthan Y, the flip-flop FF, will always remain reset thereby enabling aNOR-gate 35 to transmit every f -X pulse received at a binary inputterminal (B) thereof from the axis contour generator 12 (FIG. 1). Thebinary flip-flop FF has its direct reset input terminal (DR) connectedto receive the control signal DRy which is at zero volts when X is equalto or greater than Y. Accordingly, the binary flip-flop FF, will respondto every fl,-Y pulse received at a binary input terminal (B) thereoffrom the contour generator 12 to provide at its set output terminal (SO)a square wave of half the frequency of the pulse train f 'Y. A NOR-gate35 (connected to the set output terminal of the binary flip-flop FF andto the contour generator 12 to receive the train of pulses f 'Y) willthen transmit only half of the pulses in the train f -Y.

Buffer flip-flops FF and FF, are connected to a monostable multivibrator37 so that it is triggered when either the flip-flop FF;, or theflip-flop FF. is reset by a pulse at its input terminal R. One of theflip-flops, such as the flip-flop FF;,, is reset directly by the outputf, of the voltage controlled oscillator 16 (FIG. 1) while the otherflip-flop FF, is reset by the delayed and phase shifted output of thevoltage controlled oscillator 16. ln that manner, the pulse train fromthe monostable multivibrator 37 will have an output frequencyproportional to I XI 0.5YI The delayed output from the voltagecontrolled oscillator 16 may be obtained by, for example, providing aninverter element 38 between the output terminal of the voltagecontrolled oscillator and the reset input terminal of the bufferflip-flop FF...

If the absolute value of the Y command is greater than the absolutevalue of the X command, the roles of the binary flipflops FF l and FFare reversed such that the gate 36 transmits every j' 'Y pulse while thegate 35 transmits only every other f,,-X pulse. In that manner, theoutput of the D-computer 22 is a pulse train proportionate to Afrequency-to-voltage converter 40 converts the train of pulses from theD-computer 22 into a proportional voltage or current which is coupled toan operational amplifier 41 (FIG. 1) by a resistor 42. The potentiometer18 is connected to the summing junction of the operational amplifier 41by a resistor 43 of typically 100K ohms; the potentiometer 18 is thentypically 2K ohms. The output of the operational amplifier 41 isconnected to the control terminal of the voltage controlled oscillator16 which may be of any conventional type such as a charge controlledastable multivibrator. In that manner, a closed loop analog system isprovided for controlling the output frequency f,, of the voltagecontrolled oscillator 16 as a function of the desired machine tooldeparture D, where D is approximated asjust described.

It should be noted that since the same oscillator 16 which drives theaxis contour generator 12 to the X and Y commands is used to reset theflip-flops FF and F F sequentially, the 0.5Y-pulses (0.5X-pulses) areadded exactly between two X-pulses (Y-pulses) if the oscillator 16 isselected to have a 50 percent duty cycle. Therefore, the output 1",,(X+0.5Y) or (Y+0.5X) has uneven spacing between pulses and thefrequency-to-voltage converter 40 will generate a lower voltage than itwould with even spacing if conventional frequencyto-voltage convertersare employed, such as a converter using an integrating capacitor and adischarge path having a predetermined RC time constant. The foregoingtable of errors assumes even spacing between pulses. Consequently, theactual error is less than the error indicated. For example, if X=l andY=0.5, the actual error measured is 9.75 percent rather than I 1.6percent. It should also be noted that the error is always negative whichmeans that the machine tool velocity will always be slightly less thanthe desired velocity so that the system may be safely programmed for themaximum velocity for a given tool and material combination. In otherwords, the error inherent in the system for approximating the distance Dwill provide a margin of safety for programming (i.e., setting throughthe potentiometer 18) the system velocity. The maximum velocity is thenachieved only when the tool displacement is along one of the commandaxes (i.e., when either X or Y is equal to O).

The axis contour generator 12 which produces the pulse trains f,,'X and11,-) for the production of such motion of the machine tool may, inpractice, be a linear interpolator of the type normally used innumerical control systems such that the output frequencyfl, from theoscillator 16 (which through the feedrate control unit 17 sets up thevelocity factor for the numerical control system) will produce trains ofpulses f 'X and f,,-l at frequencies that will assure obtaining thedesired departure of the machine tool along particular axes where eachpulse is weighted to produce a motion of a predetermined dimension. Inother words, the voltage controlled oscillator 16 and feedrate controlunit 17 function together as a feedrate generator to provide a pulsetrain that sets the maximum velocity. A given number of pulses (such as10,000) define a cycle. Therefore, the cycle time is a function of thefrequency f, and the frequency )1, imposes a maximum limit of motion(such as 1 inch per cycle of l0,000 pulses, each pulse being weighted toproduce a motion of 0.0001 inches). Accordingly, to obtain the desireddeparture along a particular axis, the contour generator must multiplythe pulse trainf by the axis command. This means, for example, that fora command of 0.2222 inches, a pulse train of 2,222 pulses must bemetered out during the cycle of 10,000 pulses. This is equivalent tomultiplying the 10,000 pulses of the train from the oscillator 16 by thefraction 2,222 over 10,000. This multiplication is accomplished by theaxes contour generator 12 comprising a multiplier having a counter whichcounts pulses of the frequencyf and gates which respond to the axiscommands to meter out from appropriate stages of the counter pulses atdifferent frequencies which, upon being combined through a buffer gate,will constitute the desired number of metered pulses. It should be notedthat the counter will count all 10,000 pulses from the oscillator 16even though less than 10,000 pulses will be transmitted to the X and Yservosystems. When the count of 10,000 is reached, an end carry signalfrom the counter over the line signifies to the common control unit 13that the cycle has been completed. In that manner, the

cycle of a given command has a time period which is a function of thetool velocity which is to be maintained constant within a limited rangeof error, and the magnitude of X and Y.

Referring now to FIG. 4, another embodiment of the present inventionwill be described in which velocity is specified as part of the axiscommand data read by a tape reader 50. A data distribution unit 51 andcommon control unit 52 function in the same manner as the systemdescribed with reference to FIG. 1. The velocity value is transmitteddirectly to a feedrate generator and linear interpolator 55 while adeparture value D is provided by X and Y commands through a D-computer54 which approximates the departure according to equation (2) or suchother approximation as will reduce the error without involving analgorithm which approaches the complexity of the algorithm for obtainingthe true departure D by calculating the square root of the sum of thesquares of the axis commands. However, it should be understood that inits broadest aspects, the feature of calculating the feedrate number inaccordance with the present invention may be employed to advantage in asystem where the true value of the departure D is determined and soentered.

The common control unit 52 initiates a cycle by resetting the feedrategenerator and linear interpolator 55 over a line 56. The latter metersout pulses to X and Y servosystems at a rate which assures obtaining thedesired departure of the machine tool along the specified axes with avector-sum velocity V. When the cycle has been completed, and end carrysignal is transmitted over a line 57 to the common control unit 52 whichthen initiates processing the next command data.

An oscillator 58 transmits a clock signal at a frequency F to thefeedrate generator and linear interpolator 55, the feedrate generatingfunction of which is to compute a velocity factor referred to as afeedrate number (FRN) by which the frequency F is to be multiplied. Thelinear interpolating function is then not only to produce the end carrysignal after counting a given number (such as 10,000) of pulses at afrequency F 'FRN but to also multiply the pulse train at that frequencyF -FRN by the X and Y commands to obtain the trains of pulses F -FRN-Xand F -FRN-Y. A potentiometer 59 is provided to set the constantfrequency F Before describing the feedrate generator and linearinterpolator 55 with reference to FIG. 5, the prior art systems willfirst be described. They store a feedrate number (FRN) which reflectsthe value of the departure D according to the equation V=FRN'D, insteadof storing the desired velocity V for a given departure. In theirsimplest form, such prior art systems consist of a rate multiplier formultiplying a clock frequency F by a feedrate number generallyconsisting of three decimal digits. Accordingly, the rate multiplier iscomprised of cascaded decimal rate counters with outputs gated by thefeedrate number stored in a static register. The gated pulses are thencombined through a buffer gate to provide a train of pulses at afrequency F'FRN. That train of pulses will define the feedrate.Accordingly, the rate multiplier for the feedrate number may bedenominated a feedrate generator, the output of which is transmitted toa linear interpolator comprising rate multipliers (similar to a ratemultiplier of the feedrate generator) with the X and Y commands asmultiplier inputs. The output of the linear interpolator is then a pulsetrain at a frequency proportionate to the feedrate number which reflectsthe value of the departure D according to the equation V=FRN'D. In otherwords, the feedrate number cannot be stored in the prior art systems aspart of the program until the tool velocity has been selected and thedeparture D is computed. By the present invention, only the velocityVneed be selected; the departure D is then approximated (or computedexactly if desired) on line. From that data (V and D), the feedratenumber is calculated.

Referring to FIG. 5, the feedrate generator and linear interpolator 55of the system shown in FIG. 4 will now be described. Velocity V (notrelated to any departure information) is read by the tape reader 50(FIG. 4). The data distribution unit 51 then transmits the velocityinformation as a four digit decimal number to the feedrate generator andlinear interpolator 55 (FIG. 4) where it is stored in a V-register 60(FIG. 5) for use as a multiplier in a velocity decimal rate multiplier(DRM) 61 which is supplied a clock input at frequency F through anAND-gate 62 so that the output frequency from a buffer gate 63 isdirectly proportional to the desired velocity. That frequency which isequal to VF is then employed to calculate the feedrate number (FRN) fromthe departure D entered from the computer 54 of FIG. 4, where D isapproximated to be equal to |X [+l0.5Y I if X is equal to greater than Yand |Y1+ 0.5X| ifY is greater than X.

The computation of D is readily implemented by storing the X and Y datain static registers, making a static comparison, and in response theretoenabling one of two banks of gates which will transfer the larger oneinto the D-register. Assume X 3 Y, then X will be transferred into the Dregister and then 0.5Y will be added to the contents of the D-register.Altematively, D may be formed by the computer 54 of FIG. 4 in theD-register 65 by providing four cascaded decimal counters for theD-register 65, where each decade can be loaded in serial form. Then,assuming X is .7321 and Y is .6951, the D number is generated asfollows: send 7 pulses into decade I, 3 pulses into decade 2,2 pulsesinto decade 3, and 1 pulse into decade 4. Now'] X [is loaded. To add|0.5 Y] do the following: send 6/2=3 pulses into decade 1; 9l2=4 pulsesinto decade 2 and 5 pulses into decade 3; 5/2=2 pulses into decade 3 and5 pulses into decade 4; pulses into decade 4. As can be observed, anyeven number can be divided by 2 without remainder; however, an oddnumber divided by 2 leaves a remainder which requires a correction of Spulses into the next lower decade. The result in D is now 1X|+10.5Y|.Still another alternative would be to convert each of the decimalnumbers for the X and Y commands into true binary coded numbers so thatY may be conveniently divided by 2 by simply shifting the I command oneposition in the direction of the least significant digit position,thereby forming 0.5 Ybefore adding X and 0.5 Y.

The feedrate number (FRN) is calculated, or more properly generated, tosatisfy the equation V=FRN-D by applying to a decimal rate multiplier 66for the FRN number a clock pulse of the same frequency as the clockpulse applied to the velocity rate multiplier 61. The output of the ratemultiplier 66 is applied to the D rate multiplier 64 through a bufiergate 67. The frequency applied to the D rate multiplier 64 is thenproportional to the multiplier of the FRN rate multiplier, which is thenumber then being stored by the decimal counter 72. That frequency isthen multiplied by the departure value D in the D-register 65 throughthe D rate multiplier 64. If the proper multiplier has been applied tothe FRN rate multiplier 66, the output of the D rate multiplier 64combined through a buffer gate 68 will be equal to the frequency of theoutput from the buffer gate 63. That condition of equality is detectedby an anticoincidence circuit comprising a JK flip-flop FE, and anAND-gate 69.

The clock pulses applied to the velocity rate multiplier 61 and the FRNrate multiplier 66 are controlled to be 180 out of phase at a frequencyof 1 MHz by a binary flip-flop FF triggered at a rate of 2 MHz by clockpulses from a source 70. The complimentary output of the flip-flop FFthen enables the AND-gate 62 to transmit every other pulse from theclock source and an AND-gate 71 to transmit alternate pulses from theclock source 70 out of phase with the clock pulses being transmitted bythe AND-gate 62. Accordingly, pulses at the J and K input terminals ofthe flip-flop FF, cannot appear simultaneously.

Initially, the multiplier for the FRN rate multiplier 66 stored in adecimal counter 72 is zero so that no pulses are being transmittedthrough the buffer gate 68 to the K input terminal of the flip-flop FFsince the product FRN'D is then equal to zero. Therefore, the firstpulse at the J input terminal sets the flip-flop FF and all subsequentpulses transmitted by the buffer gate 63 pass through the AND-gate 69 tothe decimal counter 72 thereby increasing the number stored therein,

which may be denominated Q, from 0 to some finite value. The FRN ratemultiplier 66 will then immediately begin to transmit pulses through thebufier gate 67 for multiplication by the departure value D stored in theregister 65 by the D rate multiplier 64. The first pulse transmittedthrough the buffer gate 68 from the D rate multiplier 64 will reset theflip-flop F F,,. Consequently, the next pulse from the buffer gate 63will not pass through the AND-gate 69 but will set the flip-flop FF 5again. If the frequency of the pulses being transmitted by the buffergate 63 is greater than the frequency of the pulses being transmitted bythe buffer gate 68, then the difference of the two frequencies passesthrough the AND-gate 69 to increase the value Q in the decimal counter72.

Ultimately, the value Q in the decimal counter 72 is increasedsufficiently to allow the frequency of the pulses transmitted throughthe buffer gate 68 to equalthe frequency of the pulses transmittedthrough the buffer gate 63 at which time the flip-flop FF,, is toggled(alternately set and reset) without allowing any more pulses from thebuffer gate 63 to be transmitted by the AND-gate 69. At that time, theequation =FRN-D is satisfied so that the value Q stored in the decimalcounter is the desired feedrate number (FRN) for the specified velocityV and the calculated departure D. Ac- I cordingly, the output from thedecimal counter 72 then being applied to the FRN rate multiplier 66 maybe gated as an FRN multiplier to a conventional feedrate generator wherea clock pulse train at a frequency of, for example, 166.66 kHz. ismultiplied by the feedrate number to set up the velocity factor for thenumerical control system. The output pulse train from that ratemultiplier is then transmitted to a conventional linear interpolatorcomprising X and Y rate multipliers in the configuration illustrated inFIG. 6 (which shows a variant of the apparatus shown in FIG. 5).

As noted hereinbefore, the feedrate generator must furnish at least asmany pulses as are required for the maximum programmable move permachine cycle. If the maximum programmable move per block ofinstructions is 0.9999 inch, the number of pulses required to completethe move is 9,999. For convenience, 10,000 pulses may be selected as thestandard number per block or machine cycle. Accordingly, the X and Yrate multipliers of the linear interpolator may each contain four decadecounters in cascade that count out 10,000 pulses and terminate the cycleby producing an end carry" signal or, as shown in FIG. 6, four decadecounters in cascade with further decade counters cascaded with onecommand rate multiplier, each dividing by 10, to allow selecting a timebase of 10, 10 or 10 pulses per cycle, thereby scaling up X and Ycommands given as decimal fractions to values greater than one. If thevelocity should be kept constant for moves less than 0.1 inch, it wouldbe desirable to select a time base of 10, which can be done by selectingthe end carry" signal from the third decade of the axis ratemultipliers. With such an arrangement the velocity can be kept constantwith moves from 0.01 inches to 99.99 inches.

Referring now to the embodiment of FIG. 6, the velocity information readfrom the punched paper tape is in the magic three" code f(abc) whereinthe first digit a" is an exponent for a multiplier 10", and the last twodigits b and c is a decimal fraction (.bc) in inches per minute. Thedecimal fraction (.bc) is stored as the velocity data in a register andapplied as a multiplier to a velocity rate multiplier 81 so that thefrequency of a pulse train at the output of a buffer gate 82 is F(.bc),which is not equal to F 'Vas for the output of gate 63 in FIG. 5. Forthe anticoincidence circuit comprising a flip-flop FF, and an AND-gate83 to function for the same purpose as the corresponding circuit in FIG.5, it is then necessary to di vide the frequency in the lower channel by10''" to compensate for only the decimal fraction (.bc) of the velocitybeing entered in the upper channel. That is accomplished by includingmore decades in an FRN rate multiplier 84 than in the velocity ratemultiplier 81 and shifting the clock pulse train applied thereto to adifferent cascaded decimal counter. The number of decades shifted is ineach case selected to be equal to a-3.

In this illustrative embodiment, the difference (a-3) must be equal toat least one since the velocity rate multiplier 81 has two decades forthe two digit decimal fraction (.bc) and the feedrate number isspecified to be a three digit number. Accordingly, the first digit ofthe magic three" code must be equal to at least 4. If equal to that number, a switch S is set to connect a pulse train of frequency F (wherethe bar denotes a 180 phase relation with the pulse train to thevelocity rate multiplier 81) to the third from last decade in the FRNrate multiplier 84, as shown, thereby dividing the output of the lowerchannel by 100. If the digit ais equal to 5, the switch 5, is moved tothe position 5" to include one more decade in the FRN rate multiplier84, thereby dividing by 10. For the digit a equal to 6, the switch ismoved one more position over to divide by 1. More decades and switchpositions may be included, but a range of 4 to 6 for the digit aprovides an adequate range for velocity from 0.1 inch per minute to 990inches per minute.

lt hould be noted that the pulse trains at the frequencies F and F areprovided by a flip-flop FF and AND-gates 85 and 86 from a clock pulsesource 87, just as in the embodiment of FIG. 5. The principal differencebetween the two embodiments is only the form in which the velocity datais expressed and the manner in which it is entered. This manner of entryneed not be employed, however, since a code converter could be providedto convert the velocity data from the magic three code to a four digitnumber, in which case the embodiment of FIG. 5 would be employed.

A switch S is ganged with the switch S in order that the pulse trainfrom the AND-gate 83 to a decimal counter 88 always be switched to adecade counting stage thereof that is offset from the frequency input tothe FRN rate multiplier 84 by three decades. This is so that thefeedrate number generated in the counter 88 will always be three digits,rather than four as in FIG. 5.

In the usual numerical control system, it will take a maximum of 4milliseconds for the feedrate number to be generated after the X and Ycommands are read into intermediate storage (i.e., into registers in thecomputer 54 of FIG. 4) and the magic three code has been registered. Thecommon control unit 52 synchronized and initiates the FRN generationprocess by resetting all binary elements of the system of FIG. 5 throughinitial reset circuits (not shown). After the FRN number is generated,it can be transferred into the feedrate generator 9] whenever theprevious block is completed and a data transfer into the ratemultipliers 91, 100, 102 is requested. The contents of the decimalcounter 88 are then entered into latching network 90. The five decaderate multipliers 91 then function as a feedrate generator.

It should be noted that although the switches S and S are shown asmechanical switches (which could be stepping switches actuated by asolenoid in response to a number of pulses equal to a3), in practice theswitches would be electronic switches in order that the time to enterthe velocity data be less than the time (4 milliseconds) required togenerate the feedrate number. Such electronic switching arrangements maybe readily provided with transistors, such as in a dual selecting-treearrangement.

In generating the feedrate number, the value D entered into a D register92 is computed as described hereinbefore. The difference between a Drate multiplier 93 and the corresponding rate multiplier of FIG. 5 isthat an input binary rate multiplier 94 is included to accommodate anoverflow of a decimal digit 1 when the value D is computed from X and Yvalues. For example, assuming X=O.7321 and Y=0.695 l since X is thelarger number, D is equal to 0.732l+(0.5) 0.6951 which is equal to1.0796. The carry of l to the left of the decimal point requires the Dregister should be provided with another (fifth) decade to store theoverflow. However, since X and Y will always be decimal fractions, theoverflow can never be greater than one so a single binary stage will dofor the fifth decade in the D register. The corresponding binary stage94 at the input of the D rate multiplier then allows pulses from abuffer gate 95 to be divided by 2 Then, if a decimal one digit sol isstored in the most significant digit position of the D register, pulsesthus divided by two are transmitted to a buffer gate 96 as part of thetrain of pulses representing the product Q-F-D, where Q is the numbercurrently stored in the counter 88. Since the lower channel now has anadditional binary divider in the binary stage 94, a compensating stagemust be included in the upper channel. That is accomplished by includinga binary flip-flop PE, in the upper stage. If the additional stage 94were a full decade, then the compensating stage in the upper channelwould also be a full decade.

The feedrate generator which comprises the decimal rate multiplier 91and buffer gate 97 receives pulses at a constant frequency 166.6 kHz.)from a source 98 and transmits pulses at a frequency proportional to thefeedrate number generated to a conventional linear interpolator 99comprising a rate multiplier 100 and buffer gate 101 for a pulse trainto the X axis servosystem, and a rate multiplier 102 and buffer gate 103for a pulse train to the Y axis servosystem. Each of the ratemultipliers 100 and 102 has four decades. Accordingly, the carry outputfrom the most significant decade will indicate a count of 10,000 pulsesat terminal 104 signifying "end carry to complete a cycle. However, thiscycle period is for X and Y commands less than 1 inch. For commands of lto 9.999 inches, it is necessary for the tape program to store thecommands as decimal fractions and multiply the commands by 10 with aconventional g (10) code. That may be accomplished by selecting the endcarry" signal at a terminal 105 from a cascaded decade counter 106. Forexample, a Y command of 9.9 inches is entered as g (10) X09900. Commandsof l to 99.99 inches are entered as g X09999 where g (60) is a code tomultiply by 100 That is done by selecting the "end carry signal fromstill another terminal 107 at the output of a decade counter 108cascaded with the counter 106.

For commands less than 0.1000, such as 0.0500 i'nch per minute, thecommands should be normalized to eliminate leading zeros. In that manner0.0500 inch would be inserted as 0.5000 inch. The iend carry" signalshould then be selected one decade sooner than the output terminal 104to divide the interpolator output by 10. Again a program code couldprovide for that by using a conventional g (11) code. Thus, by usingthese conventional g-codes, this system will keep vectorial velocity atthe value designated for commands ranging from 0.01 to 99.99 inches.

The embodiments of FIGS. 1 and 4 have been described with reference toan approximation for D equal to X+O.5 Y and Y+0.5X, according to whetheror not X is equal to or greater than Y. A closer a proximating can bemade by D=|X|+| 0.5YI-l0.lXlif IXF |Y I and |0.5Yl |0.lX| is greaterthan zero; otherwise, D may be set equal to [X] for a sufficiently closeapproximation. The following table shows the error resulting from theapproximation.

|0.5Y lOJXl is not greater than zero; therefore, D=

If Y is greater than X, then X and Y values are interchanged in theforegoing equation and table for D. This can be readily implemented inthe computer 54 of FIG. 4 by simply shifting X (or Y) one decimal placeto form 0.1X(or 0.1 Y). The subtraction ofthat value from X+0.5 Y (orY+0.5X) is then performed 0.5 Y0.1 X. It should be noted that the outputof the anticoinl cidence circuit which is to be added to the value X inthe multivibrator 37 will be zero if 0.5 Y0.I X is less tlgngero so thatthe condition miposedftfi'fii fifstfhree cas of the foregoing table issatisfied, and D is set equal to X. This, of course, assumes X is equalto or greater than Y; if not, the output of the added counter should bedisabled by the signal DRy from the differential amplifier 19 (FIG. 1)so that 0.1X will be equal to zero. A second decade counter andanticoincidence circuit should then be added in a complementary mannerfor those conditions when Y is greater than X. That second counter wouldbe disabled by the signal DRx when X is greater than Y.

Although only two-axes systems have been referred to as illustrativeembodiments of the present invention, it should be appreciated that thevarious features may be employed in a three-axes system by simply takingthe third axes into account where the feature to be employed dependsupon approximating D. That may be done by simply adding 0.32 for theapproximation otherwise obtained by taking only two axes X and Y intoaccount. This assumes that X and Y are greater than Z and all otherconditions are satisfied. In other words is set equal to zero if l0.5Yi|0.lXi is equal to or less than zero, for the condition IX EELSJZL Ifthat condition is not satisfied, the axis commands are interchangedaccording to their relative value. The result is better than :5 percentof the correct value for D.

It should also be appreciated that novel features described withreference to the embodiments of FIGS. 5 and 6 do not depend upon D beingapproximated since the exact value of D may be entered if provision ismade to determine the value of D as the square root of the sum of therespective axis commands squared. It should also be recognized thatalthough decimal systems have been referred to because the practice hasbeen to prepare tapes in the decimal system of notation, i.e., in theBCD (binary coded decimal) system, all of the novel features describedmay be readily practiced in binary systems, even if program tapes areprepared in the decimal system of notation by using decimal-to-binarycode converters in the data distribution unit. Accordingly, inasmuch asit is recognized that modifications and variations falling within thespirit of the invention will occur to those skilled in the art, it isnot intended that the scope of the invention be determined by thedisclosed exemplary embodiments, but rather should be determined by thebreadth of the appended claims.

The embodiments of the invention in which an exclusive property orprivilege is claimed are defined as follows:

1. In a numerical control system having a plurality of setvosystems forcontrolling a tool position along a plurality of mutually perpendicularaxes, each servosystem controlling said tool position in a different oneof said axes, a method for obtaining wholly without human intervention aclock pulse train at a frequency which is a function of desired tooldeparture D, and in response thereto, obtaining departure pulses as afunction of axis commands for each axis servosystem to move said tool ata predetermined velocity V, said method comprising:

estimating said departure D from said axis commands;

providing a train of pulses at a frequency which is a function of saidvelocity V and estimated departure D; and multiplying said train ofpulses by said axis commands in pulse rate multipliers to obtain saiddeparture pulses at a rate which provides said predetermined velocity Vfor the departure D. 2. A method as defined in claim 1 wherein saiddeparture D is estimated in accordance with the equations t lE 6515535xairdvunmeiahaagea inTaidequations if 3. A method as defined in claim 2wherein said departure D is estimated for a three-axes system by adding|0.3Z| to each estimated departure from X and Y commands, where allconditions are satisfied as for a two-axes system, and interchanging X,Yand Z such that, as interchanged, [X I e IY] 512i 4. A method asdefined in claim 1 wherein said train of pulses is provided at afrequency which is a function of said velocity V and estimated departureD by obtaining a voltage signal proportional to said estimated departureD, and applying said voltage signal to a voltage controlled oscillatorwhich provides said train of pulses.

5. A method as defined in claim 1 wherein said train of pulses isprovided at a frequency which is a function of said velocity Vandestimated departure D by calculating a feedrate number FRN from therelationship defined by the equation V=FRN'D, and multiplying pulsesfrom a clock pulse source by said number FRN.

6. In a numerical control system having at least X and Y servosystems,the combination comprising:

reading means for reading from a stored program axis commands X and Yfor a predetermined departure D of a machine tool;

a voltage controlled oscillator having a control terminal and an outputterminal for producing a train of pulses at a frequency f, on saidoutput terminal in response to a voltage signal;

rate multiplier means connected to said reading means and saidoscillator for producing departure pulses for said servosystems atfrequencies fl,-X and f,- Y;

comparing means responsive to said departure pulses for determiningwhether said product frequency f,,'X is greater than or equal to saidproduct frequency jQ'Y;

dividing means responsive to said comparing means for dividing saidproduct frequency jL-Y by 2 if said product frequency f 'X is greaterthan or equal to said product frequency f,- Y, and for dividing saidproduct frequency f 'X by 2 if said product frequency f,Y is greaterthan said product frequency f,,X

combining means responsive to said dividing means for combining in aninterspaced manner pulses of the divided frequency product with pulsesof the undivided frequency product, whereby a train of pulses isproduced at a frequency f, in accordance with the Equation f.=f[X[+I0.5Y| if 1X|$IY| and in accordance with the d Equation f.=f|Y]+|0.5X] if |Y| 1Xl an and 7. The combination as defined in claim 6wherein said dividing means comprises: v

a first binary circuit having a direct reset terminal connected to saidcomparing means, and a binary input terminal connected to said 'ratemultiplier to receive said frequency product j],X and remain setcontinually when Mean a second binary circuit having a direct resetterminal connected to said cc paring means and a binary input terminalconnected to said rate multiplier to receive said frequency product j],Yand remain set continually when f,,Y f,X, and

first and second gates connected to transmit said frequency products f,Xand f Y, under control of said first and second binary circuits,respectively. 8. The combination as defined in claim 7 wherein saidcombining means comprises first and second flip-flops connected to beset by pulses transmitted by said first and second gates, respectively,and connected to be reset by said oscillator noncoincidentaly, and amultivibrator adapted to be triggered by said first and secondflip-flops upon being reset.

9. In a numerical control system, the combination comprismg:

first means for reading from a stored program data for a desired machinetool departure D and a desired velocity Vfor said departure D;

second means responsive to said first means for producing a first trainof pulses at a frequency related to the product of a constant F and saidvelocity V;

third means responsive to said first means for producing a second trainof pulses at a frequency related to the product of said constant F, anumber Q and said departure D;

fourth means responsive to said second and third means for comparingsaid first train of pulses with said second train of pulses, and inresponse thereto, for producing a third train of pulses at a rateproportional to the difference in frequency between said first andsecond trains of pulses; and

a counter for producing said number Q in response to said third train ofpulses to increase said second train of pulses to the frequency of saidfirst train of pulses at which time F-V='Q'D, and Q=FRN, where FRN is afeedrate number equal to the ratio V:D.

10. The combination as defined in claim 9 wherein said tool departuredata is read by said first means as axis commands X and Y, and saidthird means includes means responsive to said axis commands fordetermining said departure D from said axis commands.

11. The combination as defined in claim 10 wherein said determiningmeans computes said departure in accordance withthe equation a...

=|X]+[0.5Yl if [XISIYL and 12. The combination as defined in claim 11wherein said determining means computes said departure D in accordancewith the equations the commands X and Y being interchanged in saidequations if X, Y and Z such that, as interchanged, IY]

14. In a numerical control system, the corrTbinati on comprising:

means for reading axis commands from a stored program I for apredetermined departure D of a machine and a corresponding velocity Vforthe departure D;

means connected to receive said axis commands and compute the departureD;

a first rate multiplier connected to receive said velocity V and a trainof pulses at a given constant frequency F to produce an output train ofpulses at a reference frequency which is a function of velocity V;

a second rate multiplier connected to receive a number Q and an inputtrain of pulses at said given constant frequency F to produce a train ofpulses at a frequency which is a function of the number Q;

a third rate multiplier connected to receive departure D and said outputtrain of pulses from said second rate multiplier to produce an outputtrain of pulses at a frequency which is a function of said departure Dand said number Q;

means for comparing the frequency of said output train of pulses fromsaid first velocity rate multiplier with the frequency of said outputtrain of pulses from said third rate multiplier, and for transmitting atrain of pulses at a rate proportional to the difference in frequency;and

a counter for providing said number Q connected to receive said train ofpulses from said comparing means whereby said number Q is increaseduntil the multipliers of said first, second and third multipliers bearthe relation V=Q- D, at which time Q is equal to a feedrate numbernecessary to multiply a clock frequency to obtain a pulse train at afrequency proportionate to the ratio of velocity V to departure D formachine tool motion of said desired velocity V.

15. In a numerical control system, the combination comprising:

first means for reading from a stored program numerical data for adesired machine tool departure D and a desired velocity 'V for thedeparture D, wherein said velocity is represented by a code f(abc) wherethe 0" is a coefficient of a multiplier R"' for the balance of the coderepresenting a fraction (.bc), where R is the radix of said numericaldata and p is a constant;

second means responsive to said first means for producing a first trainof pulses equal to the produce of a constant F and said fraction .bc);

third means responsive to said first means for producing a second trainof pulses equal to the product of said constant F, a number Q, saiddeparture D and said multiplier R'" inverted;

fourth means responsive to said second and third means for comparingsaid first train of pulses with said second train of pulses, and inresponse thereto, for producing a third train of pulses at a rateproportional to the difference in frequency between said first andsecond trains of pulses; and

a counter for producing said number Q in response to said third train ofpulses to increase said second train of pulses to the frequency of saidfirst train of pulses at which time F'V 'Q'D, and Q=FRN, where FRN is afeedrate number equal to the ratio W0.

16. The combination as defined in claim 15 wherein said tool departuredata is ready by said first means as axis commands X and Y, and saidthird means includes means responsive to said axis commands fordetermining said departure D from said axis commands.

17. The combination as defined in claim 16 wherein said determiningmeans computes said departure in accordance with the equations and 18.The combination as defined in claim 17 wherein said determining meanscomputes said departure D in accordance with the equations 19. Thecombination as defined in claim 18 wherein said determining meanscomputes said departure D for a threeaxes system by adding ]0.3Z| toeach estimated departure from X and Y commands, where all conditions aresatisfied as for a two-axes system, and interchanging the denominationof X, Yand Zsuch that, as interchanged [XI [YI IZIL 20. The combinationas defined in claim l'fwh'erein:

said third means comprises a rate multiplier having m+n orders, m is thenumber of digits of said multiplier Q and n is the maximum differencea-p permitted in the coefficient of the multiplier W", said ratemultiplier having a switch means responsive to said code a for receivinga train of pulses at a frequency F for multiplication by the contents ofsaid counter, said switch means being adapted to switch said train ofpulses to different multiplier orders according to said difference a-psuch that said rate multiplier includes a number of orders equal to mplus said difference a-p; and

said counter has a number of cascaded orders equal to m-l-n, saidcounter having a switch responsive to said code digit a for receivingsaid third train of pulses from said fourth means such that said counterreceives said third train of pulses at the input of m cascaded decadesthereof which provide multiplier digits to the corresponding n orders ofsaid rate multiplier having the greatest weight, the most significant ofwhich is the rate multiplier order to which said switch means iscurrently connected in response to said code a.

21. The combination as defined in claim 20 including:

a linear interpolator connected to receive axis commands and in responsethereto produce trains of pulses proportionate to the product of theaxis commands and the content of said counter when the rate of saidthird train of pulses has been decreased to zero;

a source of clock pulses;

a feed generating pulse rate multiplier having m+n orders connected toreceive clock pulses from said source at the most significant stage; and

a latching transfer network for transferring the contents of saidcounter to said feed generating pulse rate multiplier as the multiplierthereof, whereby said linear interpolator receives said clock pulsesmultiplied by the contents of said counter as a feedrate number equal tothe ratio V/D.

and with the equation said number FRN.

22. A method as defined in claim 1 wherein said departure D is estimatedfrom axis commands X and Y in accordance with the equation 23. In anumerical control system having a plurality of servosystems forcontrolling a tool position along a plurality of mutually perpendicularaxes, each servosystem controlling said tool position in a different oneof said axes, apparatus for obtaining a clock pulse train at a frequencywhich is a function of desired tool departure D, and in responsethereto, obtaining departure pulses as a function of axis commands foreach axis servosystem to move said tool at a predetermined velocity,said apparatus comprising:

means for estimating said departure D from said axis commands; means forproviding a train of pulses at a frequency which is a function of saidvelocity V and estimated departure D; and a plurality of means formultiplying said train of pulses by said axis commands, one multiplyingmeans for each axis command, to obtain said departure pulses at a ratewhich provides said predetermined velocity V for the departure D. 24. Ina numerical control system, apparatus as defined in claim 23 whereinsaid estimating means responds to X and Y commands in accordance withthe equation 25. In a numerical control system, apparatus as defined inclaim 23 wherein said means for providing said train of pulses at afrequency which is a function of said velocity V and estimated departureD comprises means for obtaining a voltage signal proportional to saidestimated departure D, a voltage controlled oscillator, and means forapplying said voltage signal to said oscillator as a control voltage.

26. In a numerical control system, apparatus as defined in claim 23wherein said means for providing said train of pulses at a frequencywhich is a function of said V and estimated departure D comprises meansfor calculating a feedrate number FRN from said velocity V and estimateddeparture D in accordance with the relationship defined by the equationV=FRN'D, a source of clock pulses at a constant frequency, and means formultiplying clock pulses from said source by (5/69) TEE STATES PATENT@FWQE Patent N 3,633,013 ed January 4, 1972 In Ernst H. Dummermuth It iscertified that error appears in the above-identified patent and thatsaidLetters Patent are hereby corrected as shown below:

Abstract, Line 8 "V=FRN='-D" should read V=FRN'D- Col. 1, Lines All ofthe material contained in Lines 34-36 34-36 inclusive should read asfollows:

-- FRN=V/D I 1) The velocity V is given by a table for all cutting toolsand materials, and the departure D is calculated from the programmeddistances X, Y and Z. Y

' Col. 1, Line 73 (b) should read (bc) Col. 2, Line 2 "simple" shouldread ample-- Col. 2, Line 14 Insert a vertical bar after "1" (equationCol. 2, Line 15 Insert a vertical bar ]5 after (equation 2) Col. 2, Line31 should read (at the end of equation Col. 2, Line 33 IX| |Y| Z] shouldread -]X]i]Y|:[Z|-

Col.v 2, Line-36 Insert --isafter "largest" Col, 3, Line 27 "Q.F' D"should read --Q-F-D- Col. 6, Line 45 "gate 35" should read ----gate 36--Col. 12, Line 30 "1" should read l0-- WWW auras PATENT owed @ERTEFFQATE@51 @QRREQTEGN (PAGE 2) Patent No. 3,633,013 Dated January 4, 1972 I em-(g) Ernst H. Dummermuth- It is certified that error appears in theabove-identified patent and that said Letters Patent are herebycorrected as shown below:

Col. 12, Line 38 Delete -iafter "The" Col. 12, Line 49 "approximating"should read -approximation- Col. 12, Line 50 |X| IY] should read ]X||Y ICol. 12, Line 65 Insert lin first column of table under "X" (8th rowfrom the top) Col. 12, Line 67 "-1.0" should read -+l.O (last number inlast column of table under Error") Col. 12, Line 69. Insert -X- after"D=" Col. 14, Line 4 insert from axis commands X and Y- after Q"estimated" Col. 14, Line 15 X Y z should read X Y;; Z

Col. 14, Line 67 "D=l I I )l l-(l).5Y[if|X 3 Y!" should read 0.5Y|i|x';$]Y|-- Col. 15, Line 39 "F-V=-Q-D" should read F-V=F-Q'D-- Col.16, Line 29 I "of" should read ---at- I Col. 16, Line 41 "produce"should read -product- Col.l6, Line 45 "R 'P" should read :--R -P--' Col.16, Line 56 "F-V=-Q'D" should read F-V=F' Q-D-- Col. 16, Line 59 "ready"should read read- 3 UNETED STATES P TENT 0mm? mwwmw m: QRRECNN (PAGEPatent N0. 3y633,0l3 Dated January 4 1972 lnventor(g) Ernst H.Dummermuth It is certified that error appears in the abovgddentifiedpatent and that: saidLetters Patent are hereby corrected as shown below:

Col. 18, Llne 43 Insert veloc1tyafter "sald" Signed and sealed this 22ndday of May 1973.

(SEAL) Attest:

, EDWARD M.FLETCHER,JR. ROBERT GOTTSCI-IALK Q Attesting OfficerCommissioner of Patents

1. In a numerical control system having a plurality of servosystems forcontrolling a tool position along a plurality of mutually perpendicularaxes, each servosystem controlling said tool position in a different oneof said axes, a method for obtaining wholly withoUt human intervention aclock pulse train at a frequency which is a function of desired tooldeparture D, and in response thereto, obtaining departure pulses as afunction of axis commands for each axis servosystem to move said tool ata predetermined velocity V, said method comprising: estimating saiddeparture D from said axis commands; providing a train of pulses at afrequency which is a function of said velocity V and estimated departureD; and multiplying said train of pulses by said axis commands in pulserate multipliers to obtain said departure pulses at a rate whichprovides said predetermined velocity V for the departure D.
 2. A methodas defined in claim 1 wherein said departure D is estimated inaccordance with the equations the commands X and Y being interchanged insaid equations if Y > X .
 3. A method as defined in claim 2 wherein saiddeparture D is estimated for a three-axes system by adding 0.3Z to eachestimated departure from X and Y commands, where all conditions aresatisfied as for a two-axes system, and interchanging X, Y and Z suchthat, as interchanged, X Y Z .
 4. A method as defined in claim 1 whereinsaid train of pulses is provided at a frequency which is a function ofsaid velocity V and estimated departure D by obtaining a voltage signalproportional to said estimated departure D, and applying said voltagesignal to a voltage controlled oscillator which provides said train ofpulses.
 5. A method as defined in claim 1 wherein said train of pulsesis provided at a frequency which is a function of said velocity V andestimated departure D by calculating a feedrate number FRN from therelationship defined by the equation V FRN.D, and multiplying pulsesfrom a clock pulse source by said number FRN.
 6. In a numerical controlsystem having at least X and Y servosystems, the combination comprising:reading means for reading from a stored program axis commands X and Yfor a predetermined departure D of a machine tool; a voltage controlledoscillator having a control terminal and an output terminal forproducing a train of pulses at a frequency fo on said output terminal inresponse to a voltage signal; rate multiplier means connected to saidreading means and said oscillator for producing departure pulses forsaid servosystems at frequencies fo.X and fo.Y; comparing meansresponsive to said departure pulses for determining whether said productfrequency fo.X is greater than or equal to said product frequency fo.Y;dividing means responsive to said comparing means for dividing saidproduct frequency fo.Y by 2 if said product frequency fo.X is greaterthan or equal to said product frequency fo.Y, and for dividing saidproduct frequency fo.X by 2 if said product frequency foY is greaterthan said product frequency foX; combining means responsive to saiddividing means for combining in an interspaced manner pulses of thedivided frequency product with pulses of the undivided frequencyproduct, whereby a train of pulses is produced at a frequency fs inaccordance with the converting means responsive to said combining meansfor producing a voltage signal at said control terminal of saidoscillator in response to said frequency fs, whereby said frequence fois a function of an approximated departure D given by the equation 7.The combination as defined in claim 6 wherein said dividing meanscomprises: a first binary ciRcuit having a direct reset terminalconnected to said comparing means, and a binary input terminal connectedto said rate multiplier to receive said frequency product foX and remainset continually when foX foY, a second binary circuit having a directreset terminal connected to said comparing means and a binary inputterminal connected to said rate multiplier to receive said frequencyproduct foY and remain set continually when foY<foX, and first andsecond gates connected to transmit said frequency products foX and foY,under control of said first and second binary circuits, respectively. 8.The combination as defined in claim 7 wherein said combining meanscomprises first and second flip-flops connected to be set by pulsestransmitted by said first and second gates, respectively, and connectedto be reset by said oscillator noncoincidentaly, and a multivibratoradapted to be triggered by said first and second flip-flops upon beingreset.
 9. In a numerical control system, the combination comprising:first means for reading from a stored program data for a desired machinetool departure D and a desired velocity V for said departure D; secondmeans responsive to said first means for producing a first train ofpulses at a frequency related to the product of a constant F and saidvelocity V; third means responsive to said first means for producing asecond train of pulses at a frequency related to the product of saidconstant F, a number Q and said departure D; fourth means responsive tosaid second and third means for comparing said first train of pulseswith said second train of pulses, and in response thereto, for producinga third train of pulses at a rate proportional to the difference infrequency between said first and second trains of pulses; and a counterfor producing said number Q in response to said third train of pulses toincrease said second train of pulses to the frequency of said firsttrain of pulses at which time F.V F.Q.D, and Q FRN, where FRN is afeedrate number equal to the ratio V:D.
 10. The combination as definedin claim 9 wherein said tool departure data is read by said first meansas axis commands X and Y, and said third means includes means responsiveto said axis commands for determining said departure D from said axiscommands.
 11. The combination as defined in claim 10 wherein saiddetermining means computes said departure in accordance with theequations
 12. The combination as defined in claim 11 wherein saiddetermining means computes said departure D in accordance with theequations the commands X and Y being interchanged in said equations ifY > X .
 13. The combination as defined in claim 12 wherein saiddetermining means computes said departure D for a three-axes system byadding 0.3Z to each estimated departure from X and Y commands, where allconditions are satisfied as for a two-axes system, and interchanging thedenomination of X, Y and Z such that, as interchanged, X Y Z .
 14. In anumerical control system, the combination comprising: means for readingaxis commands from a stored program for a predetermined departure D of amachine and a corresponding velocity V for the departure D; meansconnected to receive said axis commands and compute the departure D; afirst rate multiplier connected to receive said velocity V and a trainof pulses at a given constant frequency F to produce an output train ofpulses at a reference frequency which is a function of velocity V; asecond rate multiplier connected to receive a number Q and an inputtrain of pulses at said given constant frequency F to produce a train ofpulses at a frequency which is a function of the number Q; a third ratemultiplier connected to receive said departure D and said output trainof pulses from said second rate multiplier to produce an output train ofpulses at a frequency which is a function of said departure D and saidnumber Q; means for comparing the frequency of said output train ofpulses from said first velocity rate multiplier with the frequency ofsaid output train of pulses from said third rate multiplier, and fortransmitting a train of pulses at a rate proportional to the differencein frequency; and a counter for providing said number Q connected toreceive said train of pulses from said comparing means whereby saidnumber Q is increased until the multipliers of said first, second andthird multipliers bear the relation V Q.D, at which time Q is equal to afeedrate number necessary to multiply a clock frequency to obtain apulse train at a frequency proportionate to the ratio of velocity V todeparture D for machine tool motion of said desired velocity V.
 15. In anumerical control system, the combination comprising: first means forreading from a stored program numerical data for a desired machine tooldeparture D and a desired velocity V for the departure D, wherein saidvelocity is represented by a code f(abc) where the ''''a'''' is acoefficient of a multiplier Ra p for the balance of the coderepresenting a fraction (.bc), where R is the radix of said numericaldata and p is a constant; second means responsive to said first meansfor producing a first train of pulses equal to the produce of a constantF and said fraction (.bc); third means responsive to said first meansfor producing a second train of pulses equal to the product of saidconstant F, a number Q, said departure D and said multiplier R1 pinverted; fourth means responsive to said second and third means forcomparing said first train of pulses with said second train of pulses,and in response thereto, for producing a third train of pulses at a rateproportional to the difference in frequency between said first andsecond trains of pulses; and a counter for producing said number Q inresponse to said third train of pulses to increase said second train ofpulses to the frequency of said first train of pulses at which time F.VF.Q.D, and Q FRN, where FRN is a feedrate number equal to the ratio V/D.16. The combination as defined in claim 15 wherein said tool departuredata is ready by said first means as axis commands X and Y, and saidthird means includes means responsive to said axis commands fordetermining said departure D from said axis commands.
 17. Thecombination as defined in claim 16 wherein said determining meanscomputes said departure in accordance with the equations
 18. Thecombination as defined in claim 17 wherein said determining meanscomputes said departure D in accordance with the equations the commandsX and Y being interchanged in said equations if Y > X .
 19. Thecombination as defined in claim 18 wherein said determining meanscomputes said departure D for a three-axes system by adding 0.3Z to eachestimated departure from X and Y commands, where all conditions aresatisfied as for a two-axes system, and interchanging the denominationof X, Y and Z such that, as interchanged X Y Z .
 20. The combination asdefined in claim 15 Wherein: said third means comprises a ratemultiplier having m+n orders, m is the number of digits of saidmultiplier Q and n is the maximum difference a-p permitted in thecoefficient of the multiplier Ra p, said rate multiplier having a switchmeans responsive to said code ''''a'''' for receiving a train of pulsesat a frequency F for multiplication by the contents of said counter,said switch means being adapted to switch said train of pulses todifferent multiplier orders according to said difference a-p such thatsaid rate multiplier includes a number of orders equal to m plus saiddifference a-p; and said counter has a number of cascaded orders equalto m+n, said counter having a switch responsive to said code digit''''a'''' for receiving said third train of pulses from said fourthmeans such that said counter receives said third train of pulses at theinput of m cascaded decades thereof which provide multiplier digits tothe corresponding n orders of said rate multiplier having the greatestweight, the most significant of which is the rate multiplier order towhich said switch means is currently connected in response to said code''''a.''''
 21. The combination as defined in claim 20 including: alinear interpolator connected to receive axis commands and in responsethereto produce trains of pulses proportionate to the product of theaxis commands and the content of said counter when the rate of saidthird train of pulses has been decreased to zero; a source of clockpulses; a feed generating pulse rate multiplier having m+n ordersconnected to receive clock pulses from said source at the mostsignificant stage; and a latching transfer network for transferring thecontents of said counter to said feed generating pulse rate multiplieras the multiplier thereof, whereby said linear interpolator receivessaid clock pulses multiplied by the contents of said counter as afeedrate number equal to the ratio V/D.
 22. A method as defined in claim1 wherein said departure D is estimated from axis commands X and Y inaccordance with the equation
 23. In a numerical control system having aplurality of servosystems for controlling a tool position along aplurality of mutually perpendicular axes, each servosystem controllingsaid tool position in a different one of said axes, apparatus forobtaining a clock pulse train at a frequency which is a function ofdesired tool departure D, and in response thereto, obtaining departurepulses as a function of axis commands for each axis servosystem to movesaid tool at a predetermined velocity, said apparatus comprising: meansfor estimating said departure D from said axis commands; means forproviding a train of pulses at a frequency which is a function of saidvelocity V and estimated departure D; and a plurality of means formultiplying said train of pulses by said axis commands, one multiplyingmeans for each axis command, to obtain said departure pulses at a ratewhich provides said predetermined velocity V for the departure D.
 24. Ina numerical control system, apparatus as defined in claim 23 whereinsaid estimating means responds to X and Y commands in accordance withthe equation
 25. In a numerical control system, apparatus as defined inclaim 23 wherein said means for providing said train of pulses at afrequency which is a function of said velocity V and estimated departureD comprises means for obtaining a voltage signal proportional to saidestimated departure D, a voltage controlled oscillator, and means forapplying said voltage signal to said oscillator as a control voltage.26. In a numerical control system, apparatus as defined in claim 23wherein said means for providing said train of pulses at a frequencywhiCh is a function of said V and estimated departure D comprises meansfor calculating a feedrate number FRN from said velocity V and estimateddeparture D in accordance with the relationship defined by the equationV FRN.D, a source of clock pulses at a constant frequency, and means formultiplying clock pulses from said source by said number FRN.